﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Onshi.POS.Modelo.Entidades
{
    [Serializable]
    public abstract class ComprobanteOtro : EntidadBase<Int32>
    {
        #region Constructores

        public ComprobanteOtro()
            : base()
        {
        }

        #endregion

        #region Atributos

        private String nombre;
        private Int32 cantidad;
        private Decimal precio;
        private Decimal descuentoRecargo;
        private Decimal iva;

        #endregion

        #region Propiedades

        public Decimal Iva
        {
            get { return iva; }
            set { iva = value; }
        }

        public Decimal DescuentoRecargo
        {
            get { return descuentoRecargo; }
            set { descuentoRecargo = value; }
        }

        public Decimal Precio
        {
            get { return precio; }
            set { precio = value; }
        }

        public Int32 Cantidad
        {
            get { return cantidad; }
            set { cantidad = value; }
        }

        public String Articulo
        {
            get { return nombre; }
            set { nombre = value; }
        }

        public Decimal PrecioCantidad
        {
            get { return precio * cantidad; }
        }

        public Decimal PrecioCantidadDescuentoRecargo
        {
            get { return PrecioCantidad + (PrecioCantidad / 100) * descuentoRecargo; }
        }

        public Decimal Total
        {
            get { return PrecioCantidadDescuentoRecargo + (PrecioCantidadDescuentoRecargo / 100) * iva; }
        }

        #endregion
    }
}
